Mobile robots are becoming increasingly commonplace and are used in such diverse fields as space exploration, lawn mowing and floor cleaning. Recently there has been a rapid advancement in the field of robotic vacuum cleaners, the primary objective of which is to navigate and vacuum a user's home autonomously and unobtrusively, whilst requiring as little assistance from a human user as possible and preferably none.
In performing this task, a robotic vacuum cleaner must be able to autonomously navigate and negotiate obstacles within their environment, and also be able to provide a good level of cleaning performance on a number of different floor types. For example it is expected that a single robot vacuum cleaner would be required to clean most rooms within a typical home environment, and so should be able to provide a good cleaning performance on floor surfaces such as tiles, hard wood, thin and thick carpet, linoleum etc.
It is expected that from time to time during operation, robots will encounter problems. For example a robot vacuum cleaner may suck up a large object that creates a blockage in the airflow through the machine, a cable may become tangled around a brushbar or similar. Often, such problems will require human intervention in order to clear the problem and set the robot back on course. However, any required human intervention could be perceived as a nuisance by the user, and it is preferable if the robot is able to resolve errors itself whenever possible, without requiring any human intervention.